Virtualization allows multiplexing of the resources of an underlying computing device (e.g., a host computing device or host device) to be shared between one or more virtual machines (VMs). The underlying computing device hosts the one or more VMs. A virtual machine (VM) may be a software implementation of a physical device (e.g., a computing device such as a desktop computer, a laptop computer, routers, switches, etc.). A VM may include an operating system (which may be referred to as a guest operating system) and may be able to perform various functions/operations and/or execute an application, a service, a daemon, a script, a software module, and/or a software component that resides on the VM. The underlying computing device may allocate various amounts of its resources to each of the one or more VMs. Each of the one or more VMs may be able to use the allocated resources to perform the various functions/operations. Each VM may also be able to use the allocated resources to execute its guest operating system, applications, services, daemons, scripts, software modules, and/or software components. The underlying computing device (which hosts the VMs) may emulate the underlying hardware for the guest operating system, making the use of the VM transparent to a user.
In accordance with common practice the various features illustrated in the drawings may not be drawn to scale. Accordingly, the dimensions of the various features may be arbitrarily expanded or reduced for clarity. In addition, some of the drawings may not depict all of the components of a given system, method or device. Finally, like reference numerals may be used to denote like features throughout the specification and figures.